package com.ruoyi.srmcontract.domain;

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonView;
import com.ruoyi.common.annotation.Excel;


/**
 * 合同维护对象 jac_contract_contract
 * 
 * @author ygx
 * @date 2020-08-04
 */
public class JacContract
{   
	public interface contractBaseView {}
    public interface contractListView extends contractBaseView {}
    public interface contractLogView extends contractBaseView {}
    
    /** $column.columnComment */
    @ExcelIgnore
    @JsonView(value = contractListView.class)
    private Long contractId;

    /** 公司代码 */
    @ExcelIgnore
    @JsonView(value = contractBaseView.class)
    private String companycode;
    
    /** 公司名称 */
    @ExcelProperty(value="公司",index = 2) 
    @JsonView(value = contractBaseView.class)
    private String companyname;


    /** 部门代码 */
    @ExcelIgnore
    @JsonView(value = contractListView.class)
    private String departmentcode;
    
    /** 部门名称 */
    @ExcelProperty(value="部门",index = 3) 
    @JsonView(value = contractListView.class)
    private String departmentname;


    /** 合同编码 */
    @ExcelProperty(value="合同代码",index = 0) 
    @JsonView(value = contractBaseView.class)
    private String contractcode;
    
    /** 老合同编码 ，用于复制合同明细*/
    private String contractcodeold;
    
    /** 合同类型：年度合同，价格协议 */
    @ExcelIgnore
    @Excel(name = "合同类型：年度合同，价格协议")
    @JsonView(value = contractListView.class)
    private String contracttype;

    /** 合同年度 */
    @ExcelIgnore
    @Excel(name = "合同年度")
    @JsonView(value = contractListView.class)
    private Long contractyear;

    /** 状态（新增、发布、供应商确认、供应商拒绝、审批中、审批通过、审批拒绝、生效、取消） */
    @ExcelProperty(value="合同状态",index = 6) 
    @Excel(name = "合同状态", readConverterExp = "新增、发布、供应商确认、供应商拒绝、审批中、审批通过、审批拒绝、生效、取消")
    @JsonView(value = contractListView.class)
    private String status;
    
    /** 状态list（新增、发布、供应商确认、供应商拒绝、审批中、审批通过、审批拒绝、生效、取消） */
    @ExcelIgnore
    private List<String> statuslist;

    /** 合同模板代码 */
    @ExcelIgnore
    @Excel(name = "合同模板代码")
    @JsonView(value = contractListView.class)
    private String contracttmpcode;

    /** 供应商 */
    @ExcelProperty(value="供应商代码",index = 4) 
    @JsonView(value = contractListView.class)
    private String vendorcode;

    /** 供应商名称 */
    @ExcelProperty(value="供应商名称",index = 5) 
    @JsonView(value = contractListView.class)
    private String vendorname;

    /** 合同起始日期 */
    @ExcelProperty(value="合同开始时间",index = 7) 
    @JsonView(value = contractListView.class)
    private Long contractbegin;

    /** 合同终止日期 */
    @ExcelProperty(value="合同终止时间",index = 8) 
    @JsonView(value = contractListView.class)
    private Long contractend;

    /** 签约地点 */
    @ExcelIgnore
    @Excel(name = "签约地点")
    @JsonView(value = contractListView.class)
    private String contractplace;

    /** 签约日期 */
    @ExcelIgnore
    @Excel(name = "签约日期")
    @JsonView(value = contractListView.class)
    private Long contractsign;
    
    /** 签约起始日期 */
    @ExcelIgnore
    private String singStart;
    
    /** 签约结束日期 */
    @ExcelIgnore
    private String singEnd;

    /** 合同金额 */
    @ExcelIgnore
    @Excel(name = "合同金额")
    @JsonView(value = contractListView.class)
    private Double amount;

    /** 合同备注 */
    @ExcelIgnore
    @Excel(name = "合同备注")
    @JsonView(value = contractListView.class)
    private String memo;

    /** 所属主合同编码 */
    @ExcelIgnore
    @Excel(name = "所属主合同编码")
    @JsonView(value = contractListView.class)
    private String belongcontract;

    /** 需要供应商确认（Y,N） */
    @ExcelIgnore
    @Excel(name = "需要供应商确认", readConverterExp = "Y=,N")
    @JsonView(value = contractListView.class)
    private String isvendorconfirm;

    /** 预留1 */
    @ExcelIgnore
    @Excel(name = "预留1")
    private String addition1;

    /** 预留2 */
    @ExcelIgnore
    @Excel(name = "预留2")
    private String addition2;

    /** 创建日期 */
    @ExcelIgnore
    @Excel(name = "创建日期")
    private Long createdate;
    
    /** 创建时间 */
    @ExcelIgnore
    @Excel(name = "创建时间")
    private Long createtime;
    

    /** 创建用户代码 */
    @ExcelIgnore
    @Excel(name = "创建用户代码")
    @JsonView(value = contractListView.class)
    private String createuser;
 
    /** 创建用户名 */
    @ExcelIgnore
    @Excel(name = "创建用户名")
    @JsonView(value = contractListView.class)
    private String createusername;

    /** 更新日期 */
    @ExcelProperty(value="最后更新时间",index = 10)
    @JsonView(value = contractListView.class)
    private Long logdate;

    /** 更新时间 */
    @ExcelIgnore
    @Excel(name = "更新时间")
    @JsonView(value = contractListView.class)
    private Long logtime;
    
    /** 日志更新时间 */
    @ExcelIgnore
    @JsonView(value = contractBaseView.class)
    private String logdatelog;


    /** 更新用户代码 */
    @ExcelIgnore
    @JsonView(value = contractListView.class)
    private String loguser;

    /** 更新用户名 */
    @ExcelProperty(value="最后更新用户",index = 9)
    @JsonView(value = contractBaseView.class)
    private String logusername;

    /** 合同名称 */
    @ExcelProperty(value="合同名称",index = 1) 
    @JsonView(value = contractListView.class)
    private String contractname;

    /** 币别 */
    @ExcelIgnore
    @Excel(name = "币别")
    @JsonView(value = contractListView.class)
    private String currency;

    /** 签核单号 */
    @ExcelIgnore
    @Excel(name = "签核单号")
    private String formno;

    /** 纸本合同号 */
    @ExcelIgnore
    @Excel(name = "纸本合同号")
    @JsonView(value = contractListView.class)
    private String papercode;

    /** 未税金额 */
    @ExcelIgnore
    @Excel(name = "未税金额")
    @JsonView(value = contractListView.class)
    private Double untaxamount;
    
    /** 物料编码 */
    @ExcelIgnore
    @Excel(name = "物料编码")
    private String itemcode;
    
    /** 物料名称 */
    @ExcelIgnore
    @Excel(name = "物料名称")
    private String itemname;
    
    /** 日志描述 */
    @ExcelIgnore
    @JsonView(value = contractLogView.class)
    private String logdescribe;

    /** 日志处理意见 */
    @ExcelIgnore
    @JsonView(value = contractLogView.class)
    private String opinion;
    
    /** 流程处理意见  审批通过（EndConfirmed） 审批拒绝（ConfirmedNo）*/
    @ExcelIgnore
    @JsonView(value = contractLogView.class)
    private String jflowstatus;
    

    

    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setCompanycode(String companycode) 
    {
        this.companycode = companycode;
    }

    public String getCompanycode() 
    {
        return companycode;
    }
    public void setDepartmentcode(String departmentcode) 
    {
        this.departmentcode = departmentcode;
    }

    public String getDepartmentcode() 
    {
        return departmentcode;
    }
    public void setContractcode(String contractcode) 
    {
        this.contractcode = contractcode;
    }

    public String getContractcode() 
    {
        return contractcode;
    }
    public void setContracttype(String contracttype) 
    {
        this.contracttype = contracttype;
    }

    public String getContracttype() 
    {
        return contracttype;
    }
    public void setContractyear(Long contractyear) 
    {
        this.contractyear = contractyear;
    }

    public Long getContractyear() 
    {
        return contractyear;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }
    
    

    public List<String> getStatuslist() {
		return statuslist;
	}

	public void setStatuslist(List<String> statuslist) {
		this.statuslist = statuslist;
	}

	public String getStatus() 
    {
        return status;
    }
    public void setContracttmpcode(String contracttmpcode) 
    {
        this.contracttmpcode = contracttmpcode;
    }

    public String getContracttmpcode() 
    {
        return contracttmpcode;
    }
    public void setVendorcode(String vendorcode) 
    {
        this.vendorcode = vendorcode;
    }

    public String getVendorcode() 
    {
        return vendorcode;
    }
    public void setVendorname(String vendorname) 
    {
        this.vendorname = vendorname;
    }

    public String getVendorname() 
    {
        return vendorname;
    }
    public void setContractbegin(Long contractbegin) 
    {
        this.contractbegin = contractbegin;
    }

    public Long getContractbegin() 
    {
        return contractbegin;
    }
    public void setContractend(Long contractend) 
    {
        this.contractend = contractend;
    }

    public Long getContractend() 
    {
        return contractend;
    }
    public void setContractplace(String contractplace) 
    {
        this.contractplace = contractplace;
    }

    public String getContractplace() 
    {
        return contractplace;
    }
    public void setContractsign(Long contractsign) 
    {
        this.contractsign = contractsign;
    }

    public Long getContractsign() 
    {
        return contractsign;
    }
    public void setAmount(Double amount) 
    {
        this.amount = amount;
    }

    public Double getAmount() 
    {
        return amount;
    }
    public void setMemo(String memo) 
    {
        this.memo = memo;
    }

    public String getMemo() 
    {
        return memo;
    }
    public void setBelongcontract(String belongcontract) 
    {
        this.belongcontract = belongcontract;
    }

    public String getBelongcontract() 
    {
        return belongcontract;
    }
    public void setIsvendorconfirm(String isvendorconfirm) 
    {
        this.isvendorconfirm = isvendorconfirm;
    }

    public String getIsvendorconfirm() 
    {
        return isvendorconfirm;
    }
    public void setAddition1(String addition1) 
    {
        this.addition1 = addition1;
    }

    public String getAddition1() 
    {
        return addition1;
    }
    public void setAddition2(String addition2) 
    {
        this.addition2 = addition2;
    }

    public String getAddition2() 
    {
        return addition2;
    }
    public void setCreatedate(Long createdate) 
    {
        this.createdate = createdate;
    }

    public Long getCreatedate() 
    {
        return createdate;
    }

    public Long getCreatetime() {
		return createtime;
	}

	public void setCreatetime(Long createtime) {
		this.createtime = createtime;
	}

	public void setCreateuser(String createuser) 
    {
        this.createuser = createuser;
    }

    public String getCreateuser() 
    {
        return createuser;
    }
    public void setCreateusername(String createusername) 
    {
        this.createusername = createusername;
    }

    public String getCreateusername() 
    {
        return createusername;
    }
    public void setLogdate(Long logdate) 
    {
        this.logdate = logdate;
    }

    public Long getLogdate() 
    {
        return logdate;
    }
    public void setLogtime(Long logtime) 
    {
        this.logtime = logtime;
    }

    public Long getLogtime() 
    {
        return logtime;
    }
    

	public String getLogdatelog() {
		return logdatelog;
	}

	public void setLogdatelog(String logdatelog) {
		this.logdatelog = logdatelog;
	}

	public void setLoguser(String loguser) 
    {
        this.loguser = loguser;
    }

    public String getLoguser() 
    {
        return loguser;
    }
    public void setLogusername(String logusername) 
    {
        this.logusername = logusername;
    }

    public String getLogusername() 
    {
        return logusername;
    }
    public void setContractname(String contractname) 
    {
        this.contractname = contractname;
    }

    public String getContractname() 
    {
        return contractname;
    }
    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }
    public void setFormno(String formno) 
    {
        this.formno = formno;
    }

    public String getFormno() 
    {
        return formno;
    }
    public void setPapercode(String papercode) 
    {
        this.papercode = papercode;
    }

    public String getPapercode() 
    {
        return papercode;
    }
    public void setUntaxamount(Double untaxamount) 
    {
        this.untaxamount = untaxamount;
    }

    public Double getUntaxamount() 
    {
        return untaxamount;
    }
    
    

    public String getItemcode() {
		return itemcode;
	}

	public void setItemcode(String itemcode) {
		this.itemcode = itemcode;
	}

	public String getItemname() {
		return itemname;
	}

	public void setItemname(String itemname) {
		this.itemname = itemname;
	}
	
	
	public String getLogdescribe() {
		return logdescribe;
	}

	public void setLogdescribe(String logdescribe) {
		this.logdescribe = logdescribe;
	}

	public String getOpinion() {
		return opinion;
	}

	public void setOpinion(String opinion) {
		this.opinion = opinion;
	}

	public String getSingStart() {
		return singStart;
	}

	public void setSingStart(String singStart) {
		this.singStart = singStart;
	}

	public String getSingEnd() {
		return singEnd;
	}

	public void setSingEnd(String singEnd) {
		this.singEnd = singEnd;
	}
    
	
	
	public String getCompanyname() {
		return companyname;
	}

	public void setCompanyname(String companyname) {
		this.companyname = companyname;
	}

	public String getDepartmentname() {
		return departmentname;
	}

	public void setDepartmentname(String department) {
		this.departmentname = department;
	}
	
	public String getContractcodeold() {
		return contractcodeold;
	}

	public void setContractcodeold(String contractcodeold) {
		this.contractcodeold = contractcodeold;
	}

	public String getJflowstatus() {
		return jflowstatus;
	}

	public void setJflowstatus(String jflowstatus) {
		this.jflowstatus = jflowstatus;
	}

	@Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("contractId", getContractId())
            .append("companycode", getCompanycode())
            .append("departmentcode", getDepartmentcode())
            .append("contractcode", getContractcode())
            .append("contracttype", getContracttype())
            .append("contractyear", getContractyear())
            .append("status", getStatus())
            .append("contracttmpcode", getContracttmpcode())
            .append("vendorcode", getVendorcode())
            .append("vendorname", getVendorname())
            .append("contractbegin", getContractbegin())
            .append("contractend", getContractend())
            .append("contractplace", getContractplace())
            .append("contractsign", getContractsign())
            .append("amount", getAmount())
            .append("memo", getMemo())
            .append("belongcontract", getBelongcontract())
            .append("isvendorconfirm", getIsvendorconfirm())
            .append("addition1", getAddition1())
            .append("addition2", getAddition2())
            .append("createdate", getCreatedate())
            .append("createtime", getCreatetime())
            .append("createuser", getCreateuser())
            .append("createusername", getCreateusername())
            .append("logdate", getLogdate())
            .append("logdatelog", getLogdatelog())
            .append("logtime", getLogtime())
            .append("loguser", getLoguser())
            .append("logusername", getLogusername())
            .append("contractname", getContractname())
            .append("currency", getCurrency())
            .append("formno", getFormno())
            .append("papercode", getPapercode())
            .append("untaxamount", getUntaxamount())
            .append("itemcode", getItemcode())
            .append("itemname", getItemname())
            .append("statuslist", getStatuslist())
            .append("logdescribe", getLogdescribe())
            .append("opinion", getOpinion())
            .append("singStart",getSingStart())
            .append("singEnd",getSingEnd())
            .append("companyname",getCompanyname())
            .append("departmentname",getDepartmentname())
            .append("contractcodeold",getContractcodeold())
            .append("jflowstatus",getJflowstatus())
            .toString();
    }
}
